package com.spm.study.demoproject.area.publicInterface.mapper;

import com.spm.study.demoproject.area.publicInterface.entity.Staff;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

/**
 * @author aiya
 * @date 2022/10/8
 */
@Repository
public interface CurrentMapper {

    /**
     * 根据IMS系统的token 得到 ID，Name
     * @param token token信息
     * @return 返回对应token得到的人
     */
    @Select("select EMP_NO as empNo,EMP_NAME as empName,EMP_ENO as empEno,deptname1,deptname2," +
            "STATION_NAME as stationName,EMP_PHONE as empPhone" +
            " from t_co_emp_desc where token = #{token}")
    Staff getStaffByToken(@Param("token") String token);

    /**
     * 根据手机号 得到 基本信息
     * @param phone 手机号
     * @return 返回对应手机号得到的人
     */
    @Select("select EMP_NO as empNo,EMP_NAME as empName,EMP_ENO as empEno,deptname1,deptname2," +
            "STATION_NAME as stationName from t_co_emp_desc where emp_phone = #{phone}")
    Staff getStaffByPhone(@Param("phone") String phone);

    /**
     *根据 六位 员工编号 得到 name，部门等信息
     * @param empno 员工编号信息
     * @return 得到的 name等信息
     */
    @Select("select EMP_NAME as empName,EMP_ENO as empEno,deptname1,deptname2," +
            "EMP_PHONE as empPhone,STATION_NAME as stationName " +
            "from t_co_emp_desc where emp_no = #{no}")
    Staff getStaffByNo(@Param("no") String empno);

    /**
     *根据 八位 员工编号 得到 name，部门等信息
     * @param empno 手机号信息
     * @return 得到的 name等信息
     */
    @Select("select EMP_NO as empNo,EMP_NAME as empName,deptname1,deptname2," +
            "EMP_PHONE as empPhone,STATION_NAME as stationName " +
            "from t_co_emp_desc where emp_eno = #{no}")
    Staff getStaffByEno(@Param("no") String empno);

    /**
     * 根据工号，得到小组组长等信息，使用前请测试数据库，并非通用
     * @param empno 员工编号，目前只允许6位编号
     * @param post 工作岗位，目前只允许小组长等岗位
     * @return 返回对应的职工信息
     */
    @Select("select EMP_NO as empNo,EMP_NAME as empName,deptname1,deptname2,EMP_PHONE as empPhone," +
            "EMP_ENO as empEno from t_co_emp_desc " +
            "where deptname2 = (select deptname2 from t_co_emp_desc where emp_no = #{empno}) " +
            "and station_name = #{post} and isactive = 'true'")
    Staff getStaffByEmpnoAndPost(String empno, String post);
}
